{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "73bd968b-d970-4a05-94ef-4e7abf990827",
   "metadata": {},
   "source": [
    "Chapter 05\n",
    "\n",
    "# 参数方程\n",
    "Book_3《数学要素》 | 鸢尾花书：从加减乘除到机器学习 (第二版)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bceb5fe0-7667-4d00-b1e9-231a3cae7caf",
   "metadata": {},
   "source": [
    "这段代码使用Matplotlib库绘制了一个单位圆图，通过参数化方程将圆的点以平面曲线的形式展示。代码的主要步骤如下：\n",
    "\n",
    "1. **定义单位圆的参数方程**：\n",
    "   - 生成了从$0$到$2\\pi$的$100$个点作为参数$t$。\n",
    "   - 使用参数化方程定义单位圆的$x$和$y$坐标，具体为：\n",
    "     $$ \n",
    "     x = \\cos(t) \n",
    "     $$\n",
    "     $$\n",
    "     y = \\sin(t) \n",
    "     $$\n",
    "   其中，$t$表示角度（从$0$到$2\\pi$），这两个公式表示一个半径为$1$、中心在原点的圆。这样，通过不同的$t$值，可以得到圆周上不同的点。\n",
    "\n",
    "2. **绘制单位圆**：将得到的$(x, y)$坐标作为输入，绘制单位圆的轮廓。由于单位圆的半径恒定为$1$，因此图形为一个完整的圆形。\n",
    "\n",
    "3. **设置坐标轴标签、刻度和比例**：\n",
    "   - 给$x$轴和$y$轴分别加上标签$x_1$和$x_2$。\n",
    "   - 设置了$x$轴和$y$轴的刻度范围在$[-2, 2]$之间，并步长为$1$。\n",
    "   - 调用$ax.axis('scaled')$确保$x$和$y$轴的比例一致，使得圆形在图中保持完美的对称性。\n",
    "\n",
    "4. **添加网格和坐标轴基准线**：在图形中添加了虚线样式的网格线，颜色为浅灰色，并在$x=0$和$y=0$处绘制了水平和垂直的基准线，以便更直观地显示坐标轴和圆的关系。\n",
    "\n",
    "5. **隐藏边框**：为了简化图形，隐藏了顶部、底部、左侧和右侧的边框，使图形更简洁，突出展示了单位圆。\n",
    "\n",
    "该代码完整地展示了如何使用参数方程生成并绘制单位圆，结合坐标轴的设置，可以在平面直角坐标系中清晰地观察到圆的形状和对称性。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b79b3ff2-680a-4baa-89a1-61c39b4554fb",
   "metadata": {},
   "source": [
    "## 导入所需库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "93c47237-d35e-4770-ac50-b7c82c51b4b5",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np  # 导入numpy库，用于数值计算\n",
    "import matplotlib.pyplot as plt  # 导入matplotlib库，用于绘图"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8359b364-37bd-4038-84b3-46aa3b19b8a0",
   "metadata": {},
   "source": [
    "## 定义参数变量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a795f6a5-99cd-4578-8763-118a307ca14f",
   "metadata": {},
   "outputs": [],
   "source": [
    "t = np.linspace(0, 2 * np.pi, 100)  # 生成从0到2π的等间距数组，共100个点"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "77719839-8b2e-415c-b41f-371577d89c0f",
   "metadata": {},
   "source": [
    "## 单位圆的参数方程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "9ba75b20-20ef-4b50-b5b2-7ec88b81350c",
   "metadata": {},
   "outputs": [],
   "source": [
    "x1 = np.cos(t)  # 定义单位圆的x坐标，使用cos函数\n",
    "x2 = np.sin(t)  # 定义单位圆的y坐标，使用sin函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1e21d31-5f75-42a7-b04a-2740b86f498e",
   "metadata": {},
   "source": [
    "## 创建图形"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "1d7c950d-d4ca-4eb8-9f7a-743be19187b5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.lines.Line2D at 0x1bf9f3a31a0>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots()  # 创建图形和坐标轴对象\n",
    "\n",
    "## 绘制单位圆\n",
    "plt.plot(x1, x2)  # 使用x1和x2绘制单位圆\n",
    "\n",
    "## 设置坐标轴标签和刻度\n",
    "ax.set_xlabel('$x_1$')  # 设置x轴标签为“x1”\n",
    "ax.set_ylabel('$x_2$')  # 设置y轴标签为“x2”\n",
    "ax.set_xticks(np.arange(-2, 2 + 1, step=1))  # 设置x轴刻度范围为-2到2，步长为1\n",
    "ax.set_yticks(np.arange(-2, 2 + 1, step=1))  # 设置y轴刻度范围为-2到2，步长为1\n",
    "\n",
    "## 坐标轴比例和边界设置\n",
    "ax.axis('scaled')  # 设置坐标轴比例，使x和y轴单位长度一致\n",
    "ax.set_xbound(lower=-2, upper=2)  # 设置x轴的显示范围为-2到2\n",
    "ax.set_ybound(lower=-2, upper=2)  # 设置y轴的显示范围为-2到2\n",
    "\n",
    "## 添加网格和隐藏边框\n",
    "ax.grid(linestyle='--', linewidth=0.25, color=[0.7, 0.7, 0.7])  # 添加虚线网格，颜色为灰色\n",
    "plt.gca().spines['right'].set_visible(False)  # 隐藏右边框\n",
    "plt.gca().spines['top'].set_visible(False)  # 隐藏顶部边框\n",
    "plt.gca().spines['left'].set_visible(False)  # 隐藏左边框\n",
    "plt.gca().spines['bottom'].set_visible(False)  # 隐藏底部边框\n",
    "\n",
    "## 绘制坐标轴的基准线\n",
    "plt.axhline(y=0, color='k', linestyle='-')  # 在y=0处绘制水平基准线\n",
    "plt.axvline(x=0, color='k', linestyle='-')  # 在x=0处绘制垂直基准线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ecd322f4-f919-4be2-adc3-69d28ef25e69",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
